#include<stdio.h>
#include<unistd.h>
//#define ONE (1<<0)
//#define TWO (1<<1)
//#define THREE (1<<2)
//#define FOUR (1<<3)
//#define FIVE (1<<4)
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>
int main()
{
  //在c语言当中，文件的管理 是FILE 什么是FILE 其实是一个结构体，这个结构体应该有什么 ，我们可以想到，访问文件的唯一方式是描述符
  //所以c语言这个FILE 一定了封装了 fd，文件描述符--文件存进 系统 file_struct 这个数组的下标
  printf("stdin: %d\n", stdin->_fileno);
  printf("stdout: %d\n", stdout->_fileno);
  printf("stderr: %d\n", stderr->_fileno);









//  umask(0);
//  //fd就是一个数组下标，这个数组是一个指针数组，存放了各个文件的指针，而访问文件文件描述符是唯一方式
//  int fd=open("test.txt",O_WRONLY|O_CREAT,0666);
//  if(fd<0)
//  {
//    perror("open");
//  }
//  printf("fd:%d\n",fd);
//
//  const char* message="hello world\n";
//  write(fd,message,strlen(message));
//
//
//
//char buffer[128];
//ssize_t s=read(0,buffer,sizeof(buffer));//read 返回值 
//if(s>0)
//{
//
//  buffer[s]=0;
//  printf("buffer:%d %s",s,buffer);
//}
    //int fd=open("test.txt",O_WRONLY | O_CREAT | O_TRUNC,0666);
    //const char* message="hello";
    //printf("%d\n",strlen(message));
    //write(fd,message,strlen(message));
    


}















































////code 1
//void PrintTest(int flags)
//{
//    if(flags & ONE)
//    {
//        printf("one\n");
//    }
//    if(flags & TWO)
//    {
//        printf("two\n");
//    }
//    if(flags & THREE)
//    {
//        printf("three\n");
//    }
//    if(flags & FOUR)
//    {
//        printf("four\n");
//    }
//    if(flags & FIVE)
//    {
//        printf("five\n");
//    }
//}
//
//int main()
//{
//    printf("===========================\n");
//    PrintTest(ONE);
//    printf("===========================\n");
//    PrintTest(TWO);
//    printf("===========================\n");
//    PrintTest(THREE);
//    printf("===========================\n");
//    PrintTest(ONE | THREE);
//    printf("===========================\n");
//    PrintTest(ONE | TWO | THREE);
//    printf("===========================\n");
//    PrintTest(ONE | TWO | THREE | FOUR);
//    printf("===========================\n");
//    return 0;
//}
